var _ci;
var intentos = 0;

function isEnter(e) {
	var code = (window.event) ? event.keyCode : e.which;
	return (code == 13);
}

function mainInit() {
	$(document).tooltip({
      track: true
    });
	
	$('#unidad').change(function() {
		if ($("#precio").val() != "" && $("#peso").val() != "")
			$("#calcular").focus().click().blur();
	});

	$('#courier').change(function() {
		if ($("#precio").val() != "" && $("#peso").val() != "")
			$("#calcular").focus().click().blur();
	});
	
	$("#tabs-cif :text").keypress(function (e) {
		if (isEnter(e)) //&& $("#precio").val() != "" && $("#peso").val() != "")
			$("#calcular").focus().click().blur();
	});
	$("#tabs-recibidos :text").keypress(function (e) {
		if (isEnter(e)) //&& $("#cedula").val() != "")
			$("#consultar").focus().click().blur();
	});
	
	prefs = new gadgets.Prefs();
	var ci = prefs.getString("ci");
	if (ci != 0) {
		$("#cedula").val(ci);
	}
		
	$( "#tabs" ).tabs({
		activate: function( event, ui ) {
			gadgets.window.adjustHeight();
		},
		create: function( event, ui ) {
			gadgets.window.adjustHeight();
			$("html").niceScroll();
		}
	});
	$( "#dialog-link, #icons li" ).hover(
		function() {
			$( this ).addClass( "ui-state-hover" );
		},
		function() {
			$( this ).removeClass( "ui-state-hover" );
		}
	);

	$('#calcular').click(function () {
		$('#display').removeClass("alert");
		var precio = $("#precio").val();
		var peso = $("#peso").val();
		
		if (!precio.match(/^[0-9]*(\.|\,)?[0-9]+$/)) {
            $('#precio').error();
			$('#display').text(0);
			return false;
        }
		
		if (!peso.match(/^[0-9]*(\.|\,)?[0-9]+$/)) {
			$('#peso').error();
			$('#display').text(0);
            return false;
        }
		
		precio = parseFloat(precio.replace(",","."));
		peso = parseFloat(peso.replace(",","."));
		
		var unidad = $("#unidad").val();
		unidad = parseFloat(unidad);
		peso = peso * unidad;

		var seguro = precio * 0.01;
		
		getPrecioCourier(peso, function(precio_currier) {
			precio = precio + seguro + precio_currier;
			if (precio > 200) {
				$('#display').addClass('alert');
			}
			$('#display').text(precio.toFixed(2));
		});

	});
	$("input").error(function () {
        $(this).addClass('error');
    });
    $("input").focus(function () { $(this).removeClass('error'); });
	$('#display').text(0);
	
	$('#consultar').click(function () {
		_ci = $("#cedula").val();
		_ci = _ci.replace(/\./g,'').replace(/-/g,'').replace(/ /g,'');
		if (_ci != "" && !isNaN(_ci)) {
			prefs.set("ci", _ci);
			$("body").addClass("loading");
			query();
		}
		else {
			$('#cedula').error();
			$('#envios').hide();
		}
	});
	gadgets.window.adjustHeight();
}

function getPrecioCourier(peso, callback) {
	switch ($("#courier").val())
	{
		case "EMC":
			getPrecioEMC(peso, callback);
		break;
		case "MB":
			var precio = 6;
			if (peso > 0.3 && peso <= 10) {
				precio = peso * 20; // 2 U$S cada 100g
			} else if (peso > 10 && peso <= 20) {
				precio = peso * 18;
			} else if (peso > 20 && peso <= 40) {
				precio = peso * 15;
			} else if (peso > 40) {
				precio = peso * 12;
			}
			precio += 5; // handling
			callback(precio);
		break;
	}
}

function getPrecioEMC(peso, callback) {
	function response(obj) {
		callback(obj.data.price);
	}	
	var params = {};
	params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	var url = "http://www.enviamicompra.com/ws/calculator/quote/from/fl/to/MON/weight/" + peso;
	gadgets.io.makeRequest(url, response, params);
};

function query() {
	var params = {};
	params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	gadgets.io.makeRequest("http://www.enviamicompra.com/ws/calculator/quote/custom-package-count/id/" + _ci + "/year/2013", processResponseJSON, params);
};

function processResponseJSON(data) {
	data = data.data;
	var $table = $('<table>');
	$table.append('<thead>').children('thead')
		.append('<tr />').children('tr').append('<th>Fecha</th><th>Estado</th><th>Courier</th>');
			
	var $tbody = $table.append('<tbody />').children('tbody');
	
	if (data.guias.length > 0) {
		$.each( data.guias, function( key, value ) {
			var fecha = value[2];
			var estado = value[4];
			var courier = value[8];
			
			var regFecha = /^(\d{4})(\d{2})(\d{2})$/.exec(fecha);
			if (regFecha)
				fecha = regFecha[3] +"/"+ regFecha[2];
						
			$tbody.append('<tr />').children('tr:last')
					.append("<td>"+fecha+"</td>")
					.append("<td>"+estado+"</td>")
					.append("<td title='"+ courier +"'>" + courier.replace(/MI AMIBOX S A/gi,'MIAMIBOX').replace(/OVATSOL SOCIEDAD ANONIMA/gi,'EMC') + "</td>");
		});
		$('#envios').html('');
		$table.addClass("envios");
		$table.appendTo('#envios');
		$('#envios').show();
	} else { // no tiene envios o la cedula es invalida
		$('#envios').html('Sin envíos asociados');
		$('#envios').show();
	}
	$("body").removeClass("loading");
	gadgets.window.adjustHeight();
}